package com.drivemode.timberlorry.buffer;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.ContentResolver;
import android.os.Bundle;
import android.support.annotation.NonNull;
import com.drivemode.timberlorry.internal.utils.Utils;
/**
* @author KeishinYokomaku
*/
public abstract class AbstractBufferResolver implements BufferResolver {
protected final AccountManager accountManager;
protected final ContentResolver resolver;
protected final Account account;
protected AbstractBufferResolver(@NonNull AccountManager accountManager, @NonNull ContentResolver resolver, Account account) {
this.accountManager = accountManager;
this.resolver = resolver;
this.account = account;
}
@Override
public void sync() {
// TODO: consider the condition that master sync is disabled.
ContentResolver.requestSync(account, BufferProvider.AUTHORITY, Bundle.EMPTY);
}
@Override
public void scheduleSync(long period) {
// TODO: consider the condition that master sync is disabled.
if (!Utils.isAccountAdded(accountManager, account.type)) {
accountManager.addAccountExplicitly(account, null, null);
}
ContentResolver.setSyncAutomatically(account, BufferProvider.AUTHORITY, true);
ContentResolver.addPeriodicSync(account, BufferProvider.AUTHORITY, Bundle.EMPTY, period);
}
}